package com.by.component.contract;

import com.by.component.contract.dto.*;
import com.by.toolkit.model.PageReq;
import com.by.toolkit.model.PageResp;

import java.util.List;

public interface ContractSignRecordService {

    /**
     * 下发合同
     *
     * @param dto
     */
    void distributeContract(DistributeContractSDTO dto);

    /**
     * 签署合同
     *
     * @param dto
     */
    void signContract(SignContractSDTO dto);

    /**
     * 合同列表
     *
     * @param userId
     * @return
     */
    List<ContractSignRecord4DeliverSDTO> contractSignRecord4Deliver(Long userId);

    /**
     * 用户合同列表
     *
     * @param req
     * @return
     */
    PageResp<ContractSignRecord4PageSDTO> queryPage(PageReq<ContractSignRecord4PageSDTO> req);


    /**
     * 上传合同
     *
     * @param contractSignRecordId
     */
    void uploadContractFile(Long contractSignRecordId);

    void removeContractSignRecord(DistributeContractSDTO dto);

    ContractSignRecordInfoSDTO info(Long userId, Long contractInfoId, Integer sceneType, Long sceneId);

    ContractSignRecordInfoSDTO info(Long contractSignRecordId);
}
